package com.cskaoyan.javase.oop3._2inner._3static._0introduction;

/**
 * 静态内部类和成员内部类都是定义在成员位置的内部类,静态内部类只比成员内部类多了一个static修饰
 * 但是它们之间天差地别,完全不同
 *
 *
 * 语法:
 * //外围（普通）类
 * [访问权限修饰符] class EnclosedClazz{
 * // 静态内部类访问权限修饰符，有四个，和普通成员一样
 *   [访问权限修饰符] static class NestedClazz{
 *  }
 * }
 * 静态内部类的自身特点
 * 依然主要从以下几个角度分析：
 *      1.访问权限修饰符,和成员内部类完全一样,没有区别
 *      2.成员特点
 *          静态内部类和外围类就是独立的两个类，只不过静态内部类借用外围类的壳子来保护自己罢了。
 *          所以静态内部类就是将一个普通类直接嵌套定义在某个类的成员位置
 *          静态内部类和普通类的成员特点,完全一致,而且和外围类是相互独立
 *
 *      3.继承和实现
 *          可以继承可以实现
 *          稍微需要注意的是 静态内部类如果继承内部类,必须是继承静态内部类
 *
 * @since 11:08
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
}

// 外围类
class EnclosedClazz {
    // 静态内部类本身也是一个独立的类,只不过是借用外围类保护自己罢了
    private static class NestedClazz {
        int a;
        private int b =10;
        static int c = 30;
        static final int D= 40;
        {}
        public NestedClazz() {

        }
        static {}
        public static void testStatic(){}
        public void test(){}
    }
}